package com.example.demo.strategy.patter;

public class BubbleSorter {

    private int operations = 0;

    private int length = 0;

    private SortHandle itsSortHandle = null;

    public BubbleSorter(SortHandle handle){
        itsSortHandle = handle;
    }

    public int sort(Object array){
        itsSortHandle.setArray(array);
        length = itsSortHandle.length();
        operations = 0;
        if (length <= 1){
            return operations;
        }
        for (int nextToLast = length - 2;nextToLast >= 0;nextToLast--){
            for (int index = 0;index <= nextToLast;index++){
                if (itsSortHandle.outOfOrder(index)){
                    itsSortHandle.swap(index);
                }
                operations++;
            }
        }
        return operations;
    }
}
